using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using Credinka.Ayni.SEA.EN;
namespace Credinka.Ayni.SEA.AD
{
    public class adDescripcion : adGeneral
    {
        public adDescripcion(SqlConnection con)
        {
            conexion = con;
            conexionGeneral = con;
        }

        public List<enDescripcion> fListar(enDescripcion poenDescripcion)
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarDescripcion", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piNumeroPagina", SqlDbType.Int).Value = poenDescripcion.NumeroPagina;
            cmd.Parameters.Add("@piNumeroRegistros", SqlDbType.Int).Value = poenDescripcion.NumeroRegistros;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_TotalRegistros = drd.GetOrdinal("TotalRegistros");
                int pos_RowNumber = drd.GetOrdinal("RowNumber");
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoTabla = drd.GetOrdinal("iCodigoTabla");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_DescripcionCorta = drd.GetOrdinal("vDescripcionCorta");
                int pos_TasaInicial = drd.GetOrdinal("nTasaInicial");
                int pos_TasaFinal = drd.GetOrdinal("nTasaFinal");
                int pos_MontoFinal = drd.GetOrdinal("nMontoFinal");
                int pos_MontoInicial = drd.GetOrdinal("nMontoInicial");
                int pos_FechaInicio = drd.GetOrdinal("dtFechaInicio");
                int pos_FechaFin = drd.GetOrdinal("dtFechaFin");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
                int pos_AudNombreUsuarioCreacion = drd.GetOrdinal("vAudNombreUsuarioCreacion");
                int pos_AudFechaCreacion = drd.GetOrdinal("dtAudFechaCreacion");
                int pos_AudIPCreacion = drd.GetOrdinal("vAudIPCreacion");
                int pos_AudNombreUsuarioModificacion = drd.GetOrdinal("vAudNombreUsuarioModificacion");
                int pos_AudFechaModificacion = drd.GetOrdinal("dtAudFechaModificacion");
                int pos_AudIPModificacion = drd.GetOrdinal("vAudIPModificacion");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.TotalRegistros = drd.GetInt32(pos_TotalRegistros);
                    oenDescripcion.RowNumber = drd.GetInt32(pos_RowNumber);
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoTabla = (drd.IsDBNull(pos_CodigoTabla) ? 0 : drd.GetInt32(pos_CodigoTabla));
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    oenDescripcion.TasaInicial = (drd.IsDBNull(pos_TasaInicial) ? 0 : drd.GetDecimal(pos_TasaInicial));
                    oenDescripcion.TasaFinal = (drd.IsDBNull(pos_TasaFinal) ? 0 : drd.GetDecimal(pos_TasaFinal));
                    oenDescripcion.MontoFinal = (drd.IsDBNull(pos_MontoFinal) ? 0 : drd.GetDecimal(pos_MontoFinal));
                    oenDescripcion.MontoInicial = (drd.IsDBNull(pos_MontoInicial) ? 0 : drd.GetDecimal(pos_MontoInicial));
                    oenDescripcion.FechaInicio = (drd.IsDBNull(pos_FechaInicio) ? new DateTime(1900, 01, 01) : drd.GetDateTime(pos_FechaInicio));
                    oenDescripcion.FechaFin = (drd.IsDBNull(pos_FechaFin) ? new DateTime(1900, 01, 01) : drd.GetDateTime(pos_FechaFin));
                    oenDescripcion.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                    oenDescripcion.AudNombreUsuarioCreacion = (drd.IsDBNull(pos_AudNombreUsuarioCreacion) ? "" : drd.GetString(pos_AudNombreUsuarioCreacion));
                    oenDescripcion.AudFechaCreacion = (drd.IsDBNull(pos_AudFechaCreacion) ? new DateTime(1900, 01, 01) : drd.GetDateTime(pos_AudFechaCreacion));
                    oenDescripcion.AudIPCreacion = (drd.IsDBNull(pos_AudIPCreacion) ? "" : drd.GetString(pos_AudIPCreacion));
                    oenDescripcion.AudNombreUsuarioModificacion = (drd.IsDBNull(pos_AudNombreUsuarioModificacion) ? "" : drd.GetString(pos_AudNombreUsuarioModificacion));
                    oenDescripcion.AudFechaModificacion = (drd.IsDBNull(pos_AudFechaModificacion) ? new DateTime(1900, 01, 01) : drd.GetDateTime(pos_AudFechaModificacion));
                    oenDescripcion.AudIPModificacion = (drd.IsDBNull(pos_AudIPModificacion) ? "" : drd.GetString(pos_AudIPModificacion));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarEstado()
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarEstado", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoTabla = drd.GetOrdinal("iCodigoTabla");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_DescripcionCorta = drd.GetOrdinal("vDescripcionCorta");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoTabla = (drd.IsDBNull(pos_CodigoTabla) ? 0 : drd.GetInt32(pos_CodigoTabla));
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarTipoAlerta()
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sGEN_ListarTipoAlerta", conexionGeneral);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarCargo()
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ListarCargo", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoTabla = drd.GetOrdinal("iCodigoTabla");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_DescripcionCorta = drd.GetOrdinal("vDescripcionCorta");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoTabla = (drd.IsDBNull(pos_CodigoTabla) ? 0 : drd.GetInt32(pos_CodigoTabla));
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarObjeto()
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarObjeto", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoTabla = drd.GetOrdinal("iCodigoTabla");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_DescripcionCorta = drd.GetOrdinal("vDescripcionCorta");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoTabla = (drd.IsDBNull(pos_CodigoTabla) ? 0 : drd.GetInt32(pos_CodigoTabla));
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarSistema()
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarSistema", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_IdDescripcion = drd.GetOrdinal("iIdDescripcion");
                int pos_CodigoTabla = drd.GetOrdinal("iCodigoTabla");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_DescripcionCorta = drd.GetOrdinal("vDescripcionCorta");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.IdDescripcion = drd.GetInt32(pos_IdDescripcion);
                    oenDescripcion.CodigoTabla = (drd.IsDBNull(pos_CodigoTabla) ? 0 : drd.GetInt32(pos_CodigoTabla));
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_DescripcionCorta) ? "" : drd.GetString(pos_DescripcionCorta));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarSistemaPorPerfil(int pIdPerfil)
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ListarSistemaPorPerfil", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@pviIdPerfil", SqlDbType.Int).Value = pIdPerfil;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;
                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public List<enDescripcion> fListarCargo(enDescripcion poenDescripcion)
        {
            List<enDescripcion> loenDescripcion = null;
            SqlCommand cmd = new SqlCommand("sSEA_ConsultarCargo", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piNumeroPagina", SqlDbType.Int).Value = poenDescripcion.NumeroPagina;
            cmd.Parameters.Add("@piNumeroRegistros", SqlDbType.Int).Value = poenDescripcion.NumeroRegistros;
            cmd.Parameters.Add("@piNombre", SqlDbType.VarChar).Value = poenDescripcion.Descripcion;
            cmd.Parameters.Add("@piCodigoEstado", SqlDbType.Int).Value = poenDescripcion.CodigoEstado;
            SqlDataReader drd = cmd.ExecuteReader();
            if (drd != null)
            {
                int pos_TotalRegistros = drd.GetOrdinal("TotalRegistros");
                int pos_RowNumber = drd.GetOrdinal("RowNumber");
                int pos_CodigoElemento = drd.GetOrdinal("iCodigoElemento");
                int pos_Descripcion = drd.GetOrdinal("vDescripcion");
                int pos_NombreEstado = drd.GetOrdinal("NombreEstado");
                int pos_CodigoEstado = drd.GetOrdinal("iCodigoEstado");
                loenDescripcion = new List<enDescripcion>();
                enDescripcion oenDescripcion;

                while (drd.Read())
                {
                    oenDescripcion = new enDescripcion();
                    oenDescripcion.TotalRegistros = drd.GetInt32(pos_TotalRegistros);
                    oenDescripcion.RowNumber = drd.GetInt32(pos_RowNumber);
                    oenDescripcion.CodigoElemento = (drd.IsDBNull(pos_CodigoElemento) ? 0 : drd.GetInt32(pos_CodigoElemento));
                    oenDescripcion.Descripcion = (drd.IsDBNull(pos_Descripcion) ? "" : drd.GetString(pos_Descripcion));
                    oenDescripcion.DescripcionCorta = (drd.IsDBNull(pos_NombreEstado) ? "" : drd.GetString(pos_NombreEstado));
                    oenDescripcion.CodigoEstado = (drd.IsDBNull(pos_CodigoEstado) ? 0 : drd.GetInt32(pos_CodigoEstado));
                    loenDescripcion.Add(oenDescripcion);
                }
            }
            return (loenDescripcion);
        }

        public int fRegistrar(enDescripcion poenDescripcion)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_RegistrarDescripcion", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piiIdDescripcion", SqlDbType.Int).Value = poenDescripcion.IdDescripcion;
            cmd.Parameters.Add("@piiCodigoTabla", SqlDbType.Int).Value = poenDescripcion.CodigoTabla;
            cmd.Parameters.Add("@piiCodigoElemento", SqlDbType.Int).Value = poenDescripcion.CodigoElemento;
            cmd.Parameters.Add("@pivDescripcion", SqlDbType.VarChar).Value = poenDescripcion.Descripcion;
            cmd.Parameters.Add("@pivDescripcionCorta", SqlDbType.VarChar).Value = poenDescripcion.DescripcionCorta;
            cmd.Parameters.Add("@pinTasaInicial", SqlDbType.Decimal).Value = poenDescripcion.TasaInicial;
            cmd.Parameters.Add("@pinTasaFinal", SqlDbType.Decimal).Value = poenDescripcion.TasaFinal;
            cmd.Parameters.Add("@pinMontoFinal", SqlDbType.Decimal).Value = poenDescripcion.MontoFinal;
            cmd.Parameters.Add("@pinMontoInicial", SqlDbType.Decimal).Value = poenDescripcion.MontoInicial;
            cmd.Parameters.Add("@pidtFechaInicio", SqlDbType.DateTime).Value = poenDescripcion.FechaInicio;
            cmd.Parameters.Add("@pidtFechaFin", SqlDbType.DateTime).Value = poenDescripcion.FechaFin;
            cmd.Parameters.Add("@piiCodigoEstado", SqlDbType.Int).Value = poenDescripcion.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioCreacion", SqlDbType.VarChar).Value = poenDescripcion.AudNombreUsuarioCreacion;
            cmd.Parameters.Add("@pivAudIPCreacion", SqlDbType.VarChar).Value = poenDescripcion.AudIPCreacion;
            N = cmd.ExecuteNonQuery();
            return N;
        }

        public int fModificar(enDescripcion poenDescripcion)
        {
            int N = -1;
            SqlCommand cmd = new SqlCommand("sSEA_ModificarDescripcion", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@piiIdDescripcion", SqlDbType.Int).Value = poenDescripcion.IdDescripcion;
            cmd.Parameters.Add("@piiCodigoTabla", SqlDbType.Int).Value = poenDescripcion.CodigoTabla;
            cmd.Parameters.Add("@piiCodigoElemento", SqlDbType.Int).Value = poenDescripcion.CodigoElemento;
            cmd.Parameters.Add("@pivDescripcion", SqlDbType.VarChar).Value = poenDescripcion.Descripcion;
            cmd.Parameters.Add("@pivDescripcionCorta", SqlDbType.VarChar).Value = poenDescripcion.DescripcionCorta;
            cmd.Parameters.Add("@pinTasaInicial", SqlDbType.Decimal).Value = poenDescripcion.TasaInicial;
            cmd.Parameters.Add("@pinTasaFinal", SqlDbType.Decimal).Value = poenDescripcion.TasaFinal;
            cmd.Parameters.Add("@pinMontoFinal", SqlDbType.Decimal).Value = poenDescripcion.MontoFinal;
            cmd.Parameters.Add("@pinMontoInicial", SqlDbType.Decimal).Value = poenDescripcion.MontoInicial;
            cmd.Parameters.Add("@pidtFechaInicio", SqlDbType.DateTime).Value = poenDescripcion.FechaInicio;
            cmd.Parameters.Add("@pidtFechaFin", SqlDbType.DateTime).Value = poenDescripcion.FechaFin;
            cmd.Parameters.Add("@piiCodigoEstado", SqlDbType.Int).Value = poenDescripcion.CodigoEstado;
            cmd.Parameters.Add("@pivAudNombreUsuarioModificacion", SqlDbType.VarChar).Value = poenDescripcion.AudNombreUsuarioModificacion;
            cmd.Parameters.Add("@pivAudIPModificacion", SqlDbType.VarChar).Value = poenDescripcion.AudIPModificacion;
            N = cmd.ExecuteNonQuery();
            return (N);
        }

        public int fContar()
        {
            int totalDescripcion;
            SqlCommand cmd = new SqlCommand("sSEA_ContarDescripcion", conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            totalDescripcion = (int)cmd.ExecuteScalar();
            return (totalDescripcion);
        }
    }
}

